home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / VS_804.ARJ / MAINTSRC.EXE / E_DICTFL.PRG < prev    next >
Text File  |  1991-11-25  |  10KB  |  327 lines

  1. * Filename.......: E_DICTFL.PRG
  2. *                  
  3. * Author.........: Vernon E. Six, Jr.
  4. *                  
  5. * Last Update....: Mon  11/25/91  16:37:13
  6. *                  
  7. * Created using..: VSG - Vern Six's Get System v1.00.53a
  8. *                  
  9. * Notice.........: CopyRight (c) 1991 by Vernon E. Six, Jr.
  10. *                  All Rights Reserved World Wide!         
  11.  
  12. #include "INKEY.CH"  
  13. #include "SETCURS.CH"
  14.  
  15. #include "_DICTFLD.CH"
  16. #include "_DICTHDR.CH"
  17.  
  18.  
  19. FUNCTION E_DICTFLD(pl_Update,pc_Mode)
  20. *══════════════════════════════════════════════════════════*
  21. * Edit the current record in _DICTFLD.DBF                  *
  22. *══════════════════════════════════════════════════════════*
  23. LOCAL getlist    := {}   
  24. LOCAL GetObj             
  25. LOCAL l_EatKeys  := .F.  
  26. LOCAL a_Say      := {}   
  27. LOCAL a_Get      := {}   
  28. LOCAL n_Cntr             
  29. LOCAL c_OldHelp          
  30. LOCAL n_Correct  := 1
  31.  
  32. *══ Make an assumption ═══════════════════════════════════*
  33.  
  34. pc_Mode = IF(pc_Mode=NIL,"EDIT",UPPER(pc_Mode))
  35.  
  36. *═════════════════════════════════════════════════════════*
  37.  
  38. _DICTFLD->( VS_SetOrder("1") )
  39. _DICTHDR->( VS_SetOrder("1") )
  40.  
  41. AADD( a_Say, _DICTHDR->DBF_NAME                            )
  42. AADD( a_Say, _DICTHDR->DESC                                )
  43.  
  44. AADD( a_Get, IF(pl_Update, _DICTFLD->FIELD_NMBR  , _DEF__DICTFLD_FIELD_NMBR   ))
  45. AADD( a_Get, IF(pl_Update, _DICTFLD->FIELD_NAME  , _DEF__DICTFLD_FIELD_NAME   ))
  46. AADD( a_Get, IF(pl_Update, _DICTFLD->FIELD_TYPE  , _DEF__DICTFLD_FIELD_TYPE   ))
  47. AADD( a_Get, IF(pl_Update, _DICTFLD->FIELD_LEN   , _DEF__DICTFLD_FIELD_LEN    ))
  48. AADD( a_Get, IF(pl_Update, _DICTFLD->FIELD_DEC   , _DEF__DICTFLD_FIELD_DEC    ))
  49. AADD( a_Get, IF(pl_Update, _DICTFLD->DESC        , _DEF__DICTFLD_DESC         ))
  50. AADD( a_Get, IF(pl_Update, _DICTFLD->DEFAULT     , _DEF__DICTFLD_DEFAULT      ))
  51. AADD( a_Get, IF(pl_Update, _DICTFLD->PICTURE     , _DEF__DICTFLD_PICTURE      ))
  52.  
  53.  
  54.    VS_GRABSCR()
  55.  
  56.       VS_PALETTE(4)
  57.  
  58.       VS_Text(2,"",PADC("Working...",40),"")
  59.  
  60.       DispBegin()
  61.  
  62.       VS_EndText()
  63.  
  64.       IF pc_Mode = "DISPLAY"
  65.          VS_WIND(02,02,18,76," Database Field Information "," Press Any Key To Continue ")
  66.        ELSE
  67.          VS_WIND(02,02,18,76," Database Field Information "," Press <F1> For Help ")
  68.       ENDIF
  69.  
  70.  
  71.       @ 05,04,05,74 BOX "┌─┐│┘─└│ "
  72.  
  73.       @ 04,04 SAY "DataBase Name:"
  74.       @ 04,29 SAY "Desc:"
  75.       @ 06,10 SAY "Field Name"
  76.       @ 06,22 SAY "Type"
  77.       @ 06,28 SAY "Length"
  78.       @ 06,36 SAY "Dec"
  79.       @ 06,04 SAY "Nmbr"
  80.       @ 09,04 SAY "Description..."
  81.       @ 12,04 SAY "Default Value..."
  82.       @ 15,04 SAY "Picture Clause..."
  83.  
  84.       SETCOLOR(VS_WindUns())
  85.  
  86.       @ 04,19 SAY a_Say[001]  PICTURE _PIC__DICTHDR_DBF_NAME
  87.       @ 04,35 SAY a_Say[002]  PICTURE _PIC__DICTHDR_DESC
  88.  
  89.       VS_WndColr()
  90.  
  91.  
  92.       *══════════════════════════════════════════════════════════*
  93.  
  94.       GetObj           := GetNew( 07,04, ;
  95.                           {|x| IF(x==NIL,a_Get[001], a_Get[001]:=x)},;
  96.                           "a_Get[001]", ;
  97.                           _PIC__DICTFLD_FIELD_NMBR )
  98.  
  99.       GetObj:cargo  := {"_DICTFLD","FIELD_NMBR"} 
  100.  
  101.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  102.  
  103.       AADD( getlist, GetObj )
  104.  
  105.       GetObj:Display()
  106.  
  107.  
  108.       *══════════════════════════════════════════════════════════*
  109.  
  110.       GetObj           := GetNew( 07,10, ;
  111.                           {|x| IF(x==NIL,a_Get[002], a_Get[002]:=x)},;
  112.                           "a_Get[002]", ;
  113.                           _PIC__DICTFLD_FIELD_NAME )
  114.  
  115.       GetObj:cargo  := {"_DICTFLD","FIELD_NAME"} 
  116.  
  117.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  118.  
  119.       AADD( getlist, GetObj )
  120.  
  121.       GetObj:Display()
  122.  
  123.  
  124.       *══════════════════════════════════════════════════════════*
  125.  
  126.       GetObj           := GetNew( 07,24, ;
  127.                           {|x| IF(x==NIL,a_Get[003], a_Get[003]:=x)},;
  128.                           "a_Get[003]", ;
  129.                           _PIC__DICTFLD_FIELD_TYPE )
  130.  
  131.       GetObj:cargo  := {"_DICTFLD","FIELD_TYPE"} 
  132.  
  133.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  134.  
  135.       AADD( getlist, GetObj )
  136.  
  137.       GetObj:Display()
  138.  
  139.  
  140.       *══════════════════════════════════════════════════════════*
  141.  
  142.       GetObj           := GetNew( 07,30, ;
  143.                           {|x| IF(x==NIL,a_Get[004], a_Get[004]:=x)},;
  144.                           "a_Get[004]", ;
  145.                           _PIC__DICTFLD_FIELD_LEN )
  146.  
  147.       GetObj:cargo  := {"_DICTFLD","FIELD_LEN"} 
  148.  
  149.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  150.  
  151.       AADD( getlist, GetObj )
  152.  
  153.       GetObj:Display()
  154.  
  155.  
  156.       *══════════════════════════════════════════════════════════*
  157.  
  158.       GetObj           := GetNew( 07,36, ;
  159.                           {|x| IF(x==NIL,a_Get[005], a_Get[005]:=x)},;
  160.                           "a_Get[005]", ;
  161.                           _PIC__DICTFLD_FIELD_DEC )
  162.  
  163.       GetObj:cargo  := {"_DICTFLD","FIELD_DEC"} 
  164.  
  165.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  166.  
  167.       AADD( getlist, GetObj )
  168.  
  169.       GetObj:Display()
  170.  
  171.  
  172.       *══════════════════════════════════════════════════════════*
  173.  
  174.       GetObj           := GetNew( 10,06, ;
  175.                           {|x| IF(x==NIL,a_Get[006], a_Get[006]:=x)},;
  176.                           "a_Get[006]", ;
  177.                           _PIC__DICTFLD_DESC )
  178.  
  179.       GetObj:cargo  := {"_DICTFLD","DESC"} 
  180.  
  181.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  182.  
  183.       AADD( getlist, GetObj )
  184.  
  185.       GetObj:Display()
  186.  
  187.  
  188.       *══════════════════════════════════════════════════════════*
  189.  
  190.       GetObj           := GetNew( 13,06, ;
  191.                           {|x| IF(x==NIL,a_Get[007], a_Get[007]:=x)},;
  192.                           "a_Get[007]", ;
  193.                           _PIC__DICTFLD_DEFAULT )
  194.  
  195.       GetObj:cargo  := {"_DICTFLD","DEFAULT"} 
  196.  
  197.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  198.  
  199.       AADD( getlist, GetObj )
  200.  
  201.       GetObj:Display()
  202.  
  203.  
  204.       *══════════════════════════════════════════════════════════*
  205.  
  206.       GetObj           := GetNew( 16,06, ;
  207.                           {|x| IF(x==NIL,a_Get[008], a_Get[008]:=x)},;
  208.                           "a_Get[008]", ;
  209.                           _PIC__DICTFLD_PICTURE )
  210.  
  211.       GetObj:cargo  := {"_DICTFLD","PICTURE"} 
  212.  
  213.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  214.  
  215.       AADD( getlist, GetObj )
  216.  
  217.       GetObj:Display()
  218.  
  219.  
  220.       *══════════════════════════════════════════════════════════*
  221.  
  222.       SETCURSOR(SC_NORMAL)
  223.       DispEnd()
  224.  
  225.       *══════════════════════════════════════════════════════════*
  226.       * Do all the pre-validations                               *
  227.       *══════════════════════════════════════════════════════════*
  228.       IF pl_Update .OR. pc_Mode="DISPLAY"
  229.       ENDIF
  230.  
  231.  
  232.  
  233.       IF pc_Mode = "DISPLAY"
  234.  
  235.          CLEAR GETS
  236.          SETCURSOR(SC_NONE) 
  237.          VS_INKEY(0)
  238.  
  239.        ELSE
  240.  
  241.          DO WHILE .T.           
  242.  
  243.             l_EatKeys := .F.    
  244.             c_OldHelp = VS_HelpPrg("E_DICTFLD ")
  245.             ReadModal(getlist)  
  246.             VS_HelpPrg(c_OldHelp)
  247.             CLEAR TYPEAHEAD     
  248.  
  249.             IF LASTKEY() = K_ESC
  250.                EXIT             
  251.             ENDIF               
  252.  
  253.             n_Correct = VS_Correct()
  254.  
  255.             DO CASE                 
  256.                CASE n_Correct = 3   
  257.                   VS_PutScr()       
  258.                   RETURN(NIL)       
  259.                CASE n_Correct = 2   
  260.                   LOOP              
  261.             ENDCASE                 
  262.  
  263.             EXIT
  264.  
  265.          ENDDO
  266.  
  267.       ENDIF
  268.  
  269.    VS_PutScr()
  270.  
  271.    CLEAR TYPEAHEAD
  272.  
  273.    IF LASTKEY() = K_ESC .OR. pc_Mode = "DISPLAY"
  274.       RETURN(NIL)
  275.    ENDIF
  276.  
  277.  
  278.    BEGIN SEQUENCE
  279.  
  280.       IF .NOT. pl_Update
  281.  
  282.          IF .NOT. _DICTFLD->(VS_AddRec())
  283.             BREAK
  284.           ELSE
  285.             REPLACE _DICTFLD->DBF_NAME       WITH _DEF__DICTFLD_DBF_NAME
  286.             REPLACE _DICTFLD->FIELD_NMBR     WITH _DEF__DICTFLD_FIELD_NMBR
  287.             REPLACE _DICTFLD->FIELD_NAME     WITH _DEF__DICTFLD_FIELD_NAME
  288.             REPLACE _DICTFLD->FIELD_TYPE     WITH _DEF__DICTFLD_FIELD_TYPE
  289.             REPLACE _DICTFLD->FIELD_LEN      WITH _DEF__DICTFLD_FIELD_LEN
  290.             REPLACE _DICTFLD->FIELD_DEC      WITH _DEF__DICTFLD_FIELD_DEC
  291.             REPLACE _DICTFLD->DESC           WITH _DEF__DICTFLD_DESC
  292.             REPLACE _DICTFLD->DEFAULT        WITH _DEF__DICTFLD_DEFAULT
  293.             REPLACE _DICTFLD->PICTURE        WITH _DEF__DICTFLD_PICTURE
  294.          ENDIF
  295.  
  296.        ELSE
  297.  
  298.          IF .NOT. _DICTFLD->(VS_RLOCK())
  299.             BREAK
  300.          ENDIF
  301.  
  302.       ENDIF
  303.  
  304.       REPLACE _DICTFLD->FIELD_NMBR          WITH a_Get[001]
  305.       REPLACE _DICTFLD->FIELD_NAME          WITH a_Get[002]
  306.       REPLACE _DICTFLD->FIELD_TYPE          WITH a_Get[003]
  307.       REPLACE _DICTFLD->FIELD_LEN           WITH a_Get[004]
  308.       REPLACE _DICTFLD->FIELD_DEC           WITH a_Get[005]
  309.       REPLACE _DICTFLD->DESC                WITH a_Get[006]
  310.       REPLACE _DICTFLD->DEFAULT             WITH a_Get[007]
  311.       REPLACE _DICTFLD->PICTURE             WITH a_Get[008]
  312.  
  313.       *══════════════════════════════════════════════════════════*
  314.       * Call the optional program specified by the programmer    *
  315.       *══════════════════════════════════════════════════════════*
  316.       REPLACE _DICTFLD->DBF_NAME WITH _DICTHDR->DBF_NAME
  317.  
  318.  
  319.       _DICTFLD->( dbUnlock() )
  320.  
  321.    END SEQUENCE
  322.  
  323. RETURN(NIL)
  324. *══ EOF: E_DICTFLD() ═════════════════════════════════════════════════════════*
  325.  
  326.  
  327.